package com.health.platform.provider.internetmedicine.dao;

import com.health.platform.common.core.entity.BaseQueryEntity;
import com.health.platform.provider.internetmedicine.entity.DisOnlineEntity;
import com.health.platform.provider.internetmedicine.entity.MedicationOnlineEntity;
import com.health.platform.provider.internetmedicine.entity.NumTrendEntity;
import com.health.platform.provider.internetmedicine.entity.PatientAgeEntity;
import com.health.platform.provider.internetmedicine.entity.PatientAreaEntity;
import com.health.platform.provider.internetmedicine.entity.SituationEntity;
import com.health.platform.provider.internetmedicine.entity.SummaryEntity;
import com.health.platform.provider.internetmedicine.entity.VisitsNumEntity;
import com.health.platform.provider.internetmedicine.entity.InternetRealTimeEntity;

import java.util.List;

/**
 * <p>互联网医疗Dao</p>
 * <p>创建日期：2021-02-23</p>
 *
 * @author zhou-qf
 */
public interface InternetMediDao {

    /**
     * 查询预约挂号人次、线上诊疗人次
     * @param baseQueryEntity 参数
     * @return 结果
     */
    SummaryEntity getOnlineNum(BaseQueryEntity baseQueryEntity);

    /**
     * 查询机构总数
     * @param baseQueryEntity 参数
     * @return 结果
     */
    SummaryEntity getMechanismNum(BaseQueryEntity baseQueryEntity);

    /**
     * 查询医生护士总数
     * @param baseQueryEntity 参数
     * @return 结果
     */
    SummaryEntity getDocNurNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取就诊人次按机构排名
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<VisitsNumEntity> getVisitsNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取线上疾病排名
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<DisOnlineEntity> getDisOnlineNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取患者地域分布
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<PatientAreaEntity> getPatientArea(BaseQueryEntity baseQueryEntity);

    /**
     * 获取患者年龄分布
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<PatientAgeEntity> getPatientAge(BaseQueryEntity baseQueryEntity);

    /**
     * 获取互联网诊疗开展情况
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<SituationEntity> getSituationNum(BaseQueryEntity baseQueryEntity);

    /**
     * 获取线上用药排名
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<MedicationOnlineEntity> getMedicationNum(BaseQueryEntity baseQueryEntity);

    /**
     * 查询预约挂号及在线就诊人次趋势
     * @param baseQueryEntity 参数
     * @return 结果
     */
    List<NumTrendEntity> getTrendNum(BaseQueryEntity baseQueryEntity);

    /**
     * 查询互联网医院实时诊疗情况
     * @param baseQueryEntity
     * @return
     */
    List<InternetRealTimeEntity> getSeeDoctor(BaseQueryEntity baseQueryEntity);
}
